home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Linux LiveCD / GeeXboX 1.0 EN / geexbox-1.0-en.i386.iso / GEEXBOX / etc / init.d / 79_mp-netstream < prev    next >
Text File  |  2006-06-21  |  4KB  |  93 lines

  1. #!/bin/sh
  2. #
  3. # Network Stream Setting
  4. #
  5. # runlevels: geexbox, debug
  6.  
  7. echo "### Network Stream Configuration ###"
  8.  
  9. [ -f /etc/network -a -f /etc/netstream ] || exit 1
  10. . /etc/network
  11.  
  12. # Disable streams if not utilized.
  13. test "$SHOUTCAST" = "no" -a "$SHOUTCASTTV" = "no" -a `grep -c ^STREAM /etc/netstream` -eq 0 -a `grep -c ^EXTM3U /etc/netstream` -eq 0 && exit 1
  14.  
  15. DAY=`date '+%d'`
  16. MONTH=`date '+%m'`
  17. YEAR=`date '+%Y'`
  18. year=`date '+%y'`
  19. BASEDIR="/mnt/Network Streams"
  20.  
  21. # network stream
  22. for I in `grep "^STREAM" /etc/netstream | sed "s# #%20#g"`; do
  23.   DIR="$BASEDIR"
  24.   [ ! -d "$DIR" ] && mkdir -p "$DIR"
  25.   URL="$(echo $I |sed -e "s#^STREAM=\"\(.*\)\":.*#\1#" -e "s#%DD#$DAY#g" -e "s#%MM#$MONTH#g" -e "s#%YY#$YEAR#g" -e "s#%yy#$year#g")"
  26.   FILE="$(echo $I |sed -e "s#^STREAM=\"\(.*\)\":\(.*\)#\2#" -e "s#%20# #g")"
  27.   echo "$URL" > "$DIR/$FILE.pls" &> /dev/null
  28. done
  29.  
  30. SC_TUNE=$(sed -n -e "s#^SHOUTCASTTUNE_URI=\"\(.*\)\"#\1#p" /etc/netstream)
  31. (
  32.   if [ "$SHOUTCAST" = "yes" ]; then
  33.     # shoutcast radio
  34.     wget -q --read-timeout=$TIMEOUT --tries=$TRIES -O /tmp/streamtmp `sed -n -e "s#^SHOUTCAST_URI=\"\(.*\)\"#\1#p" /etc/netstream` || echo "" > /tmp/streamtmp
  35.     for I in `sed "s#\&#\&#g" /tmp/streamtmp |sed -n "s#.*name=\"\([^\"]*\)\".*id=\"\([0-9]*\)\".*#\1_TAG_\2#p"| sed -e "s#\ #_#g"`; do
  36.       DIR="$BASEDIR/SHOUTcast Radio"
  37.       [ ! -d "$DIR" ] && mkdir -p "$DIR"
  38.       FILE="$(echo $I | sed -e "s#\(.*\)_TAG_[0-9]*#\1#" | sed -e "s#_# #g" -e "s#://##g" -e "s#/# #g")"
  39.       URL="$SC_TUNE?id=$(echo $I | sed -e "s#.*_TAG_\([0-9]*\)#\1#")"
  40.       echo "$URL" > "$DIR/$FILE.pls" &> /dev/null
  41.     done
  42.   fi
  43.  
  44.   if [ "$SHOUTCASTTV" = "yes" ]; then
  45.     # SHOUTcast TV content filter
  46.     if [ -n "$BLACKLIST" ]; then
  47.       BL="-v"
  48.       for I in $BLACKLIST; do
  49.         BL="$BL -e genre=\"[^\"]*$I[^\"]*\""
  50.       done
  51.     else # Accept all Genre
  52.       BL="-e genre=\"[^\"]*\""
  53.     fi
  54.  
  55.     if [ -n "$WHITELIST" ]; then
  56.       for I in $WHITELIST; do
  57.         WL="$WL -e genre=\"[^\"]*$I[^\"]*\""
  58.       done
  59.     else # Accept all Genre
  60.       WL="-e genre=\"[^\"]*\""
  61.     fi
  62.  
  63.     # SHOUTcast TV
  64.     wget -q --read-timeout=$TIMEOUT --tries=$TRIES -O /tmp/streamtmp `sed -n -e "s#^SHOUTCASTTV_URI=\"\(.*\)\"#\1#p" /etc/netstream` || echo "" > /tmp/streamtmp
  65.     for I in `grep -i $BL /tmp/streamtmp | grep -i $WL | sed "s#\&#\&#g" | sed -n "s#.*name=\"\([^\"]*\)\".*id=\"\([0-9]*\)\".*#\1_TAG_\2#p"|sed "s#\ #_#g"`; do
  66.       DIR="$BASEDIR/SHOUTcast TV"
  67.       [ ! -d "$DIR" ] && mkdir -p "$DIR"
  68.       FILE="$(echo $I | sed -e "s#\(.*\)_TAG_[0-9]*#\1#" | sed -e "s#_# #g" -e "s#://##g" -e "s#/# #g")"
  69.       URL="$SC_TUNE?id=$(echo $I | sed -e "s#.*_TAG_\(.*\)#\1#")"
  70.       echo "$URL" > "$DIR/$FILE.pls" &> /dev/null
  71.     done
  72.   fi
  73.  
  74.   # extended m3u playlists
  75.   unset FILE URL
  76.   for J in `grep "^EXTM3U" /etc/netstream | sed "s# #%20#g"`; do
  77.     DIR="$BASEDIR/$(echo $J | sed -e "s#^EXTM3U=\".*\":\(.*\)#\1#" -e "s#%20# #g")"
  78.     M3UURL="$(echo $J | sed "s#^EXTM3U=\"\(.*\)\":.*#\1#")"
  79.     wget -q --read-timeout=$TIMEOUT --tries=$TRIES -O /tmp/streamtmp "$M3UURL" || continue
  80.     for I in `sed -n -e "s/#EXTINF:[-]*[0-9]*,[0-9]*[ -]*\(.*\)/\1/p" -e "s#\(.*\)://\(.*\)#\1://\2#p" /tmp/streamtmp | sed "s# #_#g"`; do
  81.       [ -n "$FILE" ] || FILE="$(echo $I | sed -e "s#_# #g" -e "s#/# #g")"
  82.       [ -n "$URL" ] || URL="$(echo $I | sed -n -e "s#\(.*\)://\(.*\)#\1://\2#p" | sed -e "s#%DD#$DAY#g" -e "s#%MM#$MONTH#g" -e "s#%YY#$YEAR#g" -e "s#%yy#$year#g")"
  83.       if [ -n "$FILE" -a -n "$URL" ]; then
  84.         [ ! -d "$DIR" ] && mkdir -p "$DIR"
  85.         echo "$URL" > "$DIR/$FILE.pls" &> /dev/null
  86.         unset FILE URL
  87.       fi
  88.     done
  89.   done
  90. )&
  91.  
  92. exit 0
  93.